1. Field of the Invention
The instant disclosure relates to a ternary content-addressable memory (TCAM); in particular, to a non-volatile ternary content-addressable memory (TCAM) with bi-directional voltage divider control and multi-step search.
2. Description of Related Art
Content-addressable memory (CAM) is a type of computer memory used in high speed searching applications. Content-addressable memory quickly compares a string of input data with stored data, and outputs the address of matched data. Binary content-addressable memory is the simplest CAM for storing data with two states including “0” and “1”. Ternary content-addressable memory (TCAM) is for storing data for one or more bits in the stored dataword with three states. The first state is “0”, the second state is “1” and the third matching state is“X” (or “Don't Care”) which means always match.
The conventional ternary content-addressable memory comprises an array (all storage cells; 1 row as 1 entry, 1 column as 1 bit), a decoder for choosing which row to write, a main controller for producing control signals, a data-in circuit for writing data or searching data, a sense amplifier (SA) for sensing the compared result and amplifying the result, and an output encoder for transferring the result into an address which has matching data. In a write phase, it writes data to the storage cell(s). In a search phase, it compares input data with memory content (all data in storage cells), and outputs the address of identical (matching) content.
Furthermore, non-volatile TCAM stores data in a non-volatile element. The stored data still remains when power supply is turned off. Usually, the non-volatile element can be a resistive storage device, such as phase change material (PCM), magnetic tunnel junction (MTJ), or memristor etc. which have been utilized in the phase change random-access memory (PCRAM), the resistive random-access memory (RRAM) or the magnetoresistive random-access memory (MRAM).